transform: Fix identity transform fast paths
authorTimm Bäder <mail@baedert.org>
Sat, 6 Jul 2019 10:56:28 +0000 (12:56 +0200)
committerTimm Bäder <mail@baedert.org>
Sun, 7 Jul 2019 05:24:00 +0000 (07:24 +0200)
Returning an extra ref will cause leaks later.

gsk/gsktransform.c

index 9af2ce352b1737b24a7a421a492b14fa68d514f5..963ca699ed5cea465a17e4481efea2cd74af3535 100644 (file)
@@ -646,7 +646,7 @@ gsk_transform_translate_3d (GskTransform             *next,
   GskTranslateTransform *result;
 
   if (graphene_point3d_equal (point, graphene_point3d_zero ()))
-    return gsk_transform_ref (next);
+    return next;
 
   if (gsk_transform_has_class (next, &GSK_TRANSLATE_TRANSFORM_CLASS))
     {
@@ -801,7 +801,7 @@ gsk_transform_rotate (GskTransform *next,
   GskRotateTransform *result;
 
   if (angle == 0.0f)
-    return gsk_transform_ref (next);
+    return next;
 
   if (gsk_transform_has_class (next, &GSK_ROTATE_TRANSFORM_CLASS))
     {
@@ -932,7 +932,7 @@ gsk_transform_rotate_3d (GskTransform          *next,
     return gsk_transform_rotate (next, angle);
 
   if (angle == 0.0f)
-    return gsk_transform_ref (next);
+    return next;
 
   result = gsk_transform_alloc (&GSK_ROTATE3D_TRANSFORM_CLASS,
                                 GSK_TRANSFORM_CATEGORY_3D,
@@ -1121,7 +1121,7 @@ gsk_transform_scale_3d (GskTransform *next,
   GskScaleTransform *result;
 
   if (factor_x == 1 && factor_y == 1 && factor_z == 1)
-    return gsk_transform_ref (next);
+    return next;
 
   if (gsk_transform_has_class (next, &GSK_SCALE_TRANSFORM_CLASS))
     {
@@ -1250,7 +1250,7 @@ gsk_transform_perspective (GskTransform *next,
                            float         depth)
 {
   GskPerspectiveTransform *result;
-  
+
   if (gsk_transform_has_class (next, &GSK_PERSPECTIVE_TRANSFORM_CLASS))
     {
       GskTransform *r = gsk_transform_perspective (gsk_transform_ref (next->next),